Skip to main content
Version: 2026.02

Dassault 3DEXPERIENCE Enovia

Note: Users must procure and maintain valid licenses to integrate this commercial PLM tool with the Istari Digital Platform. Please contact your local IT administrator for assistance.

Summary

The Dassault 3DEXPERIENCE Enovia module enables the Istari Digital Platform to interact with Enovia to create and extract Issues, Change Requests, Change Orders, and Change Actions. This integration provides comprehensive change management capabilities, allowing you to search for documents, extract metadata, create change items, and attach physical products to change items programmatically.

Supported File Types: .istari_dassault_3dexperience_metadata

Connection Methods: Link (via 3DEXPERIENCE URL and authentication)

How and Where to Use

You can use the Dassault 3DEXPERIENCE Enovia module through either the Istari Digital Platform UI or the Istari Digital SDK. Both methods allow you to interact with Enovia change management items and documents.

What You Can Do

The Dassault 3DEXPERIENCE Enovia module enables you to:

  • Search for 3DX Documents and retrieve document IDs
  • Extract files associated with 3DX Documents
  • Create and extract Issues with full metadata
  • Create and extract Change Requests, Change Orders, and Change Actions
  • Search for Issues, Change Actions, and other change items
  • Attach Physical Products to Issues and Change Actions
  • Access comprehensive metadata including descriptions, titles, states, owners, priorities, and dates

Prerequisites

Before using this integration, ensure:

  • Dassault 3DEXPERIENCE Enovia is installed and configured by your administrator
  • You have access to a 3DEXPERIENCE platform instance
  • You have valid 3DEXPERIENCE authentication credentials (username and password)
  • The Istari Digital Agent is installed and configured
  • You have access to the Istari Digital Platform UI or the Istari Digital SDK
  • The Dassault 3DEXPERIENCE Enovia module is installed on the Istari Digital Agent

API

Functions Overview

FunctionDescriptionInputsOutputs
@istari:document_searchSearches for 3DX Documents containing a search string3DX URL, search_stringList of document IDs
@istari:extract_document_filesExtracts files associated with a 3DX Document3DX URL, search_string or dassault_3dx_physical_idDirectory containing extracted files
@istari:create_issueCreates a 3DX Enovia Issue3DX URL, description (required), title, name, severity (optional)Issue metadata (id, description, title, state, owner, etc.)
@istari:extract_issueExtracts metadata for a 3DX Enovia Issue3DX URL, search_string or dassault_3dx_physical_idIssue metadata (id, description, title, state, owner, etc.)
@istari:issue_searchSearches for 3DX Enovia Issues3DX URL, search_stringList of issue IDs
@istari:create_change_actionCreates a 3DX Enovia Change Action3DX URL, description (required), title (required), name, severityChange Action metadata
@istari:extract_change_actionExtracts metadata for a 3DX Enovia Change Action3DX URL, search_string or dassault_3dx_physical_idChange Action metadata
@istari:change_action_searchSearches for 3DX Enovia Change Actions3DX URL, search_stringList of Change Action IDs
@istari:create_change_requestCreates a 3DX Enovia Change Request3DX URL, description (required), title (required), name, severityChange Request metadata
@istari:extract_change_requestExtracts metadata for a 3DX Enovia Change Request3DX URL, dassault_3dx_physical_id (required)Change Request metadata
@istari:create_change_orderCreates a 3DX Enovia Change Order3DX URL, description (required), title (required), name, severityChange Order metadata
@istari:extract_change_orderExtracts metadata for a 3DX Enovia Change Order3DX URL, dassault_3dx_physical_id (required)Change Order metadata
@istari:attach_physical_product_to_issueAttaches a 3DX Physical Product to a 3DX Enovia Issue3DX URL, Issue identifier, Physical Product identifierUpdated Issue with attached Physical Product
@istari:attach_physical_product_to_change_actionAttaches a 3DX Physical Product to a 3DX Enovia Change Action3DX URL, Change Action identifier, Physical Product identifierUpdated Change Action with attached Physical Product

The following sections describe the format of inputs and outputs for each function in detail.

Searches for 3DX Documents that contain the given search string.

Istari Function Name: @istari:document_search

Required Parameters

  • 3DX authentication credentials
  • search_string: str — The string to find within the 3DX Documents

Optional Parameters: None

Example Input

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}

Example Output

{
"document_ids": [
"document_3dx_physical_id_1",
"document_3dx_physical_id_2",
"document_3dx_physical_id_3",
...
]
}

@istari:extract_document_files

Extracts the files associated with a 3DX Document.

Istari Function Name: @istari:extract_document_files

Required Parameters

  • 3DX authentication credentials
  • At least one optional parameter

Optional Parameters

  • search_string: str — The string to find within the 3DX Documents
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Document

Example Input

Search:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}

By Document ID:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_document_id"
}

Example Output

An Output object which points to a directory containing the extracted files.

Output(
name='extracted_document_files',
type=<OutputType.DIRECTORY: 'directory'>,
path='/your/temp/path/.../attachments'
)

@istari:create_issue

Creates a 3DX Enovia Issue.

Istari Function Name: @istari:create_issue

Required Parameters

  • 3DX authentication credentials
  • description: str — The description of the Issue

Optional Parameters

  • title: str — The title of the Issue
  • name: str — The name of the Issue
  • severity: strLow, Medium, or High

Example Input

Model:

{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}

Parameters:

{
"type": "parameter",
"value": [
["title", "My Issue Title"],
["description", "My Issue description."]
]
}

Example Output

{
"id": "my_issue_id",
"cestamp": "...",
"policy": "Issue",
"type": "Issue",
"description": "My Issue Description",
"title": "My Issue Title",
"name": "My Issue Name",
"state": "Assign",
"owner": "my_3dx_username",
"organization": "My Company Name",
"collabSpace": "My Collab Space",
"priority": "Low",
"withApproval": "false",
"Estimated Start Date": "",
"Actual Start Date": "2025-01-01T12:00:00+0000",
"Estimated End Date": "",
"Actual End Date": "",
"Escalation Required": "No",
"Resolution Recommendation": ""
}

@istari:extract_issue

Extracts the metadata for a 3DX Enovia Issue.

Istari Function Name: @istari:extract_issue

Required Parameters

  • 3DX authentication credentials
  • At least one optional parameter

Optional Parameters

  • search_string: str — The string to find within the 3DX Enovia Issues
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Enovia Issue

Example Input

Search:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}

By Issue ID:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_issue_id"
}

Example Output

{
"id": "my_issue_id",
"cestamp": "...",
"policy": "Issue",
"type": "Issue",
"description": "My Issue Description",
"title": "My Issue Title",
"name": "My Issue Name",
"state": "Assign",
"owner": "my_3dx_username",
"organization": "My Company Name",
"collabSpace": "My Collab Space",
"priority": "Low",
"withApproval": "false",
"Estimated Start Date": "",
"Actual Start Date": "2025-01-01T12:00:00+0000",
"Estimated End Date": "",
"Actual End Date": "",
"Escalation Required": "No",
"Resolution Recommendation": ""
}

Searches for 3DX Enovia Issues and returns a list of issue IDs.

Istari Function Name: @istari:issue_search

Required Parameters

  • 3DX authentication credentials
  • search_string: str — The string to find within the 3DX Enovia Issues

Optional Parameters: None

Example Input

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}

Example Output

{
"issue": [
{
"type": "Issue",
"identifier": "my_issue_id"
}
]
}

@istari:create_change_action

Creates a 3DX Enovia Change Action.

Istari Function Name: @istari:create_change_action

Required Parameters

  • 3DX authentication credentials
  • description: str — The description of the Change Action
  • title: str — The title of the Change Action

Optional Parameters

  • name: str — The name of the Change Action
  • severity: strLow, Medium, or High

Example Input

Model:

{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}

Parameters:

{
"type": "parameter",
"value": [
["title", "My Title"],
["description", "My description."]
]
}

Example Output

{
"id": "my_change_action_id",
"cestamp": "...",
"type": "Change Action",
"description": "My description",
"title": "My Title",
...
}

@istari:extract_change_action

Extracts the metadata for a 3DX Enovia Change Action.

Istari Function Name: @istari:extract_change_action

Required Parameters

  • 3DX authentication credentials
  • At least one optional parameter

Optional Parameters

  • search_string: str — The string to find within the 3DX Enovia Change Actions
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Enovia Change Action

Example Input

Search:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}

By Change Action ID:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_change_action_id"
}

Example Output

{
"id": "my_change_action_id",
"cestamp": "...",
"type": "Change Action",
"description": "My Description",
"title": "My Title",
"name": "My Name",
...
}

Searches for 3DX Enovia Change Actions and returns a list of Change Action IDs.

Istari Function Name: @istari:change_action_search

Required Parameters

  • 3DX authentication credentials
  • search_string: str — The string to find within the 3DX Enovia Change Actions

Optional Parameters: None

Example Input

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Search String"
}

Example Output

{
"changeAction": [
{
"identifier": "my_change_action_id",
...
}
]
}

@istari:create_change_request

Creates a 3DX Enovia Change Request.

Istari Function Name: @istari:create_change_request

Required Parameters

  • 3DX authentication credentials
  • description: str — The description of the Change Request
  • title: str — The title of the Change Request

Optional Parameters

  • name: str — The name of the Change Request
  • severity: strLow, Medium, or High

Example Input

Model:

{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}

Parameters:

{
"type": "parameter",
"value": [
["title", "My Title"],
["description", "My description."]
]
}

Example Output

{
"id": "my_change_request_id",
"cestamp": "...",
"type": "Change Request",
"description": "My description",
"title": "My Title",
...
}

@istari:extract_change_request

Extracts the metadata for a 3DX Enovia Change Request.

Istari Function Name: @istari:extract_change_request

Required Parameters

  • 3DX authentication credentials
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Enovia Change Request

Optional Parameters: None

Example Input

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_change_request_id"
}

Example Output

{
"id": "my_change_request_id",
"cestamp": "...",
"type": "Change Request",
"description": "My Description",
"title": "My Title",
"name": "My Name",
...
}

@istari:create_change_order

Creates a 3DX Enovia Change Order.

Istari Function Name: @istari:create_change_order

Required Parameters

  • 3DX authentication credentials
  • description: str — The description of the Change Order
  • title: str — The title of the Change Order

Optional Parameters

  • name: str — The name of the Change Order
  • severity: strLow, Medium, or High

Example Input

Model:

{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}

Parameters:

{
"type": "parameter",
"value": [
["title", "My Title"],
["description", "My description."]
]
}

Example Output

{
"id": "my_change_order_id",
"cestamp": "...",
"type": "Change Order",
"description": "My description",
"title": "My Title",
...
}

@istari:extract_change_order

Extracts the metadata for a 3DX Enovia Change Order.

Istari Function Name: @istari:extract_change_order

Required Parameters

  • 3DX authentication credentials
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Enovia Change Order

Optional Parameters: None

Example Input

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"dassault_3dx_physical_id": "my_change_order_id"
}

Example Output

{
"id": "my_change_order_id",
"cestamp": "...",
"type": "Change Order",
"description": "My Description",
"title": "My Title",
"name": "My Name",
...
}

@istari:attach_physical_product_to_issue

Attaches a 3DX Physical Product to a 3DX Enovia Issue.

Istari Function Name: @istari:attach_physical_product_to_issue

Required Parameters

  • 3DX authentication credentials
  • At least one optional Issue model parameter
  • At least one optional Physical Product parameter

Optional Parameters

Issue model:

  • search_string: str — The string to find within the 3DX Enovia Issues
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Enovia Issue

Physical Product:

  • search_string: str — The string to find within the 3DX Physical Products
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Physical Product

Example Input

Model:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Issue Search String"
}

Parameters:

{
"type": "parameter",
"value": [["dassault_3dx_physical_id", "my_physical_product_id"]]
}

Example Output

{
"id": "my_issue_id",
"affectedItems": [
{
"elements": [
{
"type": "VPMReference",
"identifier": "my_physical_product_id",
...
}
]
}
],
...
}

@istari:attach_physical_product_to_change_action

Attaches a 3DX Physical Product to a 3DX Enovia Change Action.

Istari Function Name: @istari:attach_physical_product_to_change_action

Required Parameters

  • 3DX authentication credentials
  • At least one optional Change Action model parameter
  • At least one optional Physical Product parameter

Optional Parameters

Change Action model:

  • search_string: str — The string to find within the 3DX Enovia Change Actions
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Enovia Change Action

Physical Product:

  • search_string: str — The string to find within the 3DX Physical Products
  • dassault_3dx_physical_id: str — The 3DX Physical ID for the desired 3DX Physical Product

Example Input

Model:

{
"dassault_3dx_url": "https://www.my-3dx-url.com",
"search_string": "My Change Action Search String"
}

Parameters:

{
"type": "parameter",
"value": [["dassault_3dx_physical_id", "my_physical_product_id"]]
}

Example Output

{
"id": "my_change_action_id",
"affectedItems": [
{
"elements": [
{
"type": "VPMReference",
"identifier": "my_physical_product_id",
...
}
]
}
],
...
}

Usage

Method 1: Connect

Connect to 3DEXPERIENCE Enovia using a metadata file that specifies your 3DEXPERIENCE URL. Authentication credentials are provided separately through the Platform UI or SDK.

Option A: Connect via UI

  1. Click the Connect button or link feature on the Files page
  2. Select Dassault Systèmes 3DEXPERIENCE Enovia from the available integrations
  3. Provide your 3DEXPERIENCE platform URL (e.g., https://www.my-3dx-url.com). If 3DPassport is on a different host than that URL, use Option B instead and set dassault_3dx_auth_url in the metadata file (see Authentication URL (dassault_3dx_auth_url)).
  4. Click Connect to create the connection

Option B: Upload Metadata File Manually

Create a JSON file with the following structure and save it with the .istari_dassault_3dexperience_metadata extension:

{
"dassault_3dx_url": "https://www.my-3dx-url.com"
}

Then upload this file to the Istari Digital Platform.

Authentication URL (dassault_3dx_auth_url)

Some 3DEXPERIENCE deployments host 3DPassport (login) on a different base URL than the 3DSpace API URL you use for documents and change items. The module always uses dassault_3dx_url for REST calls (for example CSRF and resource endpoints). By default it also uses that same value for 3DPassport login.

If login must go to another host, add the optional field dassault_3dx_auth_url to your .istari_dassault_3dexperience_metadata JSON. Set it to the root URL of the 3DPassport service—the same origin your users reach for authentication (do not append /3dpassport or /login; the module adds /3dpassport/login).

Example (split Passport and platform URLs):

{
"dassault_3dx_url": "https://www.my-3dx-platform-url.com",
"dassault_3dx_auth_url": "https://www.my-3dx-passport-url.com"
}

When dassault_3dx_auth_url is omitted or null, the module uses dassault_3dx_url for both authentication and API access.

If you connect through the Platform UI with a single URL field and your tenant uses a separate Passport host, create the metadata file manually (Option B) and include dassault_3dx_auth_url as shown above.

After Connecting (Both Options)

  1. Open the connected resource.
    Click on the 3DEXPERIENCE Enovia resource in your files list.

  2. Navigate to the Artifacts tab.
    Click the Artifacts tab to view and manage artifacts associated with this connection.

  3. Fill out the function execution form.
    In the Execute Function section, provide the following information:

    • Tool Name: dassault_3dexperience_enovia
    • Version: Select your 3DEXPERIENCE version (e.g., 2023x)
    • Operating System: Select the OS where your Istari Digital Agent is running
    • Function: Select the desired function (e.g., @istari:document_search, @istari:create_issue)
    • Agent: Select the appropriate agent
    • Parameters: Provide required parameters (e.g., search_string, description, title)
  4. Provide authentication credentials.
    When prompted, provide your 3DEXPERIENCE username and password. These credentials are securely stored and used for all function executions.

  5. Run the function.
    Click the Run or Execute button to start the job.

  6. Monitor job progress.
    The page will display the job status. Wait for it to complete.

  7. View results.
    Once the job completes successfully, the extracted artifacts will appear in the Artifacts tab.

  8. Download or view artifacts.
    Click on any artifact to view contents or download to your local machine.

Using the Istari Digital SDK

Prerequisite: Install Istari Digital SDK and initialize Istari Digital Client per instructions here

Step 1: Set Up Authentication

Create a file containing your 3DEXPERIENCE authentication credentials:

my_3dx_credentials.json:

{
"username": "<my_3dx_username>",
"password": "<my_3dx_password>"
}

Use the Istari client to create an auth source:

from dotenv import load_dotenv
import os
from istari_digital_client import Client, Configuration, FunctionAuthType, FunctionAuthSecret, NewSource

# Load the environment variable that contains your Istari PAT
load_dotenv()
istari_token: str = os.getenv("ISTARI_TOKEN")

# Create the Istari client
config: Configuration = Configuration(
registry_url="http://localhost:8000",
registry_auth_token=istari_token,
)
client: Client = Client(config)

# Create an auth source containing your 3DX login credentials
auth_abs_path = os.path.abspath("./my_3dx_credentials.json")
function_auth_secret: FunctionAuthSecret = client.add_function_auth_secret(
path=auth_abs_path,
function_auth_type=FunctionAuthType.BASIC,
)
auth_source: NewSource = NewSource(
revision_id=function_auth_secret.revision.id,
relationship_identifier="dassault_3dx_auth",
)

Step 2: Create and Upload the Metadata File

Create a metadata file with your 3DEXPERIENCE URL:

import json
from pathlib import Path

# Create the 3DEXPERIENCE metadata file
product_metadata = {
"dassault_3dx_url": "https://www.my-3dx-url.com",
# Optional: only if 3DPassport uses a different base URL than dassault_3dx_url
# "dassault_3dx_auth_url": "https://www.my-3dx-passport-url.com",
}

# Save to a file with .istari_dassault_3dexperience_metadata extension
metadata_path = Path("my_3dx_connection.istari_dassault_3dexperience_metadata")
with open(metadata_path, "w") as f:
json.dump(product_metadata, f, indent=2)

# Upload the metadata file as a model
model = client.add_model(
path=str(metadata_path),
description="3DEXPERIENCE Enovia connection",
display_name="My 3DX Enovia Connection",
)
print(f"Uploaded 3DEXPERIENCE metadata with model ID {model.id}")

Step 3: Execute Functions

Example: Search for Documents

# Initiate a job to search for 3DX Documents
job = client.add_job(
model_id=model.id,
function="@istari:document_search",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"search_string": "My Search String"
}
)
print(f"Document search started, job ID: {job.id}")

# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")

Example: Create an Issue

# Create an Issue with required and optional parameters
job = client.add_job(
model_id=model.id,
function="@istari:create_issue",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"parameters": [
("title", "My Issue Title"),
("description", "My Issue description."),
("name", "My Issue Name"),
("severity", "High")
]
}
)
print(f"Issue creation started, job ID: {job.id}")

# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")

Example: Extract Issue Metadata

# Extract Issue metadata by physical ID
job = client.add_job(
model_id=model.id,
function="@istari:extract_issue",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"dassault_3dx_physical_id": "my_issue_id"
}
)
print(f"Issue extraction started, job ID: {job.id}")

# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")

Example: Attach Physical Product to Issue

# Attach a Physical Product to an Issue
job = client.add_job(
model_id=model.id,
function="@istari:attach_physical_product_to_issue",
tool_name="dassault_3dexperience_enovia",
tool_version="2023x",
operating_system="Windows 11",
sources=[auth_source],
parameters={
"parameters": [
("dassault_3dx_physical_id", "my_physical_product_id")
]
}
)
# Note: The Issue can be identified by search_string in the model metadata
# or by providing dassault_3dx_physical_id in parameters
print(f"Attach Physical Product job started, job ID: {job.id}")

# Wait for completion
status = job.poll_job()
if status != "COMPLETED":
raise Exception(f"Job failed with status {status}")

Step 4: Retrieve Results

from pathlib import Path

# Retrieve the model with updated artifacts
model = client.get_model(model.id)

for artifact in model.artifacts:
output_file_path = f"c:\\enovia_extracts\\{artifact.name}"

# Create directory if needed
Path(output_file_path).parent.mkdir(parents=True, exist_ok=True)

if artifact.extension in ["txt", "csv", "md", "json", "html"]:
with open(output_file_path, "w", encoding="utf-8") as f:
f.write(artifact.read_text())
print(f"Saved artifact: {output_file_path}")
else:
# Binary files or directories
if artifact.type == "directory":
# Handle directory artifacts (e.g., extracted document files)
print(f"Directory artifact: {artifact.name} at {artifact.path}")
else:
with open(output_file_path, "wb") as f:
f.write(artifact.read_bytes())
print(f"Saved binary artifact: {output_file_path}")

Notes on Output Files

  • Document IDs (document_ids): JSON array containing physical IDs of documents matching the search criteria
  • Extracted Document Files: Directory containing all files extracted from a 3DX Document
  • Issue/Change Item Metadata: JSON objects containing complete metadata including id, description, title, state, owner, organization, collabSpace, priority, dates, and other relevant fields
  • Affected Items: JSON array showing attached Physical Products with their identifiers and metadata

Installation

Prerequisites

Before installing the Dassault 3DEXPERIENCE Enovia module, ensure:

  • Dassault 3DEXPERIENCE is installed and accessible
  • Istari Digital Agent version 9.0.0 or higher is installed
  • Network connectivity to your 3DEXPERIENCE platform instance
  • Valid 3DEXPERIENCE credentials with appropriate permissions

Configuration

The Istari Digital Agent is configured via istari_digital_config.yaml. The Agent expects the file at:

  • %LOCALAPPDATA%\istari_digital\ on Windows
  • ~/.config/istari_digital/ on RHEL/Ubuntu

The Dassault 3DEXPERIENCE Enovia module typically requires no additional configuration beyond standard agent setup. Authentication credentials are provided per-job through the Platform UI or SDK.

Configuration Parameters

ParameterTypeRequiredDescription
NoneN/AN/AThe module uses job-level authentication credentials provided at runtime

Authentication

All functions require 3DEXPERIENCE authentication credentials. These can be provided:

  • Via Platform UI: Enter credentials when prompted during function execution
  • Via SDK: Create an auth source using add_function_auth_secret with FunctionAuthType.BASIC and relationship identifier dassault_3dx_auth

The credentials are securely stored and used only for the duration of the job execution.

Versions

Current Module Version

The module version information is maintained in the module repository. Check with your administrator for the specific version installed.

Compatibility Notes

  • 3DEXPERIENCE Versions: Compatible with 3DEXPERIENCE 2023x.
  • Istari Digital Agent: Requires version 9.0.0 or higher
  • Operating Systems: Windows 10, Windows 11, Windows Server 2019, Windows Server 2022, Ubuntu 22.04, RHEL 8
  • Python Version: Not applicable (compiled module)

Troubleshooting

Common Issues

Issue: Authentication Failed

  • Symptom: Error messages indicating authentication failure or "Invalid credentials"
  • Cause: Incorrect username/password, expired credentials, or insufficient permissions
  • Solution:
    1. Verify your 3DEXPERIENCE username and password are correct
    2. Test logging into 3DEXPERIENCE manually with the same credentials
    3. Ensure your account has permissions to access the requested items
    4. Check if your password has expired and needs to be reset
    5. Verify the relationship identifier matches dassault_3dx_auth when using SDK
    6. If your deployment splits 3DPassport and 3DSpace URLs, ensure dassault_3dx_auth_url in the metadata file points at the Passport base URL and dassault_3dx_url at the API platform URL (see Authentication URL (dassault_3dx_auth_url))

Issue: Document or Item Not Found

  • Symptom: Error messages indicating "Document not found" or "Issue not found"
  • Cause: Incorrect physical ID, item doesn't exist, or insufficient permissions
  • Solution:
    1. Verify the physical ID is correct by checking the item URL in 3DEXPERIENCE
    2. Ensure the item exists in your 3DEXPERIENCE instance
    3. Check that your account has read permissions for the item
    4. For search functions, verify the search string matches items in your instance
    5. Try searching with a broader search string to find the item

Issue: Create Function Failed

  • Symptom: Error when creating Issues, Change Requests, Change Orders, or Change Actions
  • Cause: Missing required parameters, insufficient permissions, or validation errors
  • Solution:
    1. Ensure all required parameters are provided (e.g., description for Issues)
    2. Verify your account has create permissions in the target collaboration space
    3. Check that optional parameters like severity use valid values (Low, Medium, High)
    4. Review the error message for specific validation failures
    5. Ensure the 3DEXPERIENCE URL in your metadata file is correct

Issue: Extract Document Files Returns Empty Directory

  • Symptom: Directory artifact exists but contains no files
  • Cause: Document has no attached files, or files are not accessible
  • Solution:
    1. Verify the document has attached files in 3DEXPERIENCE
    2. Check that your account has permission to download the files
    3. Ensure the document physical ID is correct
    4. Try extracting a different document to verify the function works

Issue: Module Not Found or Won't Execute

  • Symptom: Error messages indicating the module cannot be found or executed
  • Cause: Module not installed correctly, wrong agent version, or configuration issues
  • Solution:
    1. Verify Istari Digital Agent version is 9.0.0 or higher
    2. Check that the Enovia module is installed in the correct agent modules directory
    3. Restart the Istari Digital Agent service
    4. Review agent logs for specific error messages
    5. Contact your administrator to verify the module installation

Issue: Network Connectivity Problems

  • Symptom: Timeouts or connection errors when executing functions
  • Cause: Network issues, firewall blocking, or incorrect 3DEXPERIENCE URL
  • Solution:
    1. Verify network connectivity to your 3DEXPERIENCE instance
    2. Check that the 3DEXPERIENCE URL in your metadata file is correct and accessible
    3. Ensure firewall rules allow connections from the agent machine to 3DEXPERIENCE
    4. Test accessing the 3DEXPERIENCE URL from a browser on the agent machine
    5. Check for proxy configuration requirements

Getting Help

If you continue to experience issues:

  1. Check the module log files for detailed error messages
  2. Review the Istari Digital Agent logs for additional context
  3. Verify 3DEXPERIENCE connectivity and authentication manually
  4. Consult the main troubleshooting guide for general agent issues
  5. Contact Istari Digital support with:
    • Module version
    • Agent version
    • 3DEXPERIENCE version
    • Operating system
    • Error messages from module logs and agent logs
    • Steps to reproduce the issue
    • Function name and parameters used

Tips and Best Practices

Authentication Management

  • Secure Storage: Store authentication credentials securely. Never commit credentials to version control
  • Credential Rotation: Regularly rotate 3DEXPERIENCE passwords and update stored credentials
  • Credential Validation: Test credentials manually in 3DEXPERIENCE before using them in automated workflows

Search and Identification

  • Search Strings: Use specific search strings to narrow results. Broad searches may return many items
  • Physical IDs: When possible, use physical IDs instead of search strings for more reliable identification
  • Unique Identifiers: Ensure element names are unique when using element_name instead of element_id

Change Management Workflow

  • Required Fields: Always provide required fields (description for Issues, description and title for Change Requests/Orders/Actions)
  • Severity Levels: Use consistent severity values (Low, Medium, High) across your organization
  • Metadata Completeness: Provide optional fields like name and severity for better organization and filtering
  • State Management: Be aware that created items start in specific states (e.g., "Assign" for Issues)

Physical Product Attachment

  • Verification: Verify Physical Product IDs exist before attempting to attach them
  • Permissions: Ensure your account has permission to modify the target Issue or Change Action
  • Search vs ID: Use search strings for Issues/Change Actions when the exact ID is unknown, but prefer IDs for Physical Products

Performance Optimization

  • Search Efficiency: Use specific search strings to reduce processing time
  • Concurrent Jobs: The agent can handle multiple jobs, but be mindful of 3DEXPERIENCE server load
  • Network Latency: Account for network latency when working with remote 3DEXPERIENCE instances

Data Quality

  • Validation: Validate extracted metadata against 3DEXPERIENCE to ensure accuracy
  • Error Handling: Implement proper error handling in SDK workflows to catch and handle failures gracefully
  • Logging: Review job logs regularly to identify patterns or recurring issues

FAQ

  • What 3DEXPERIENCE versions are supported?

    • The module is compatible with 3DEXPERIENCE 2022x, 2023x, and later versions. Exact functionality may vary by version.
  • Do I need a local 3DEXPERIENCE installation?

    • No, the module connects to your 3DEXPERIENCE platform instance via web services. You only need network connectivity and valid credentials.
  • Can I use this module without the Istari Digital Platform UI?

    • Yes, you can use the Istari Digital SDK to interact with the module programmatically.
  • What's the difference between search functions and extract functions?

    • Search functions return lists of IDs matching criteria. Extract functions retrieve full metadata for specific items identified by ID or search string.
  • How do I find the physical ID of an item?

    • Physical IDs can be found in the URL when viewing items in 3DEXPERIENCE, or by using search functions to locate items and retrieve their IDs.
  • Can I update existing Issues or Change Items?

    • The module currently supports creating and extracting items. Update functionality may be available in future versions.
  • What happens if I create a duplicate Issue?

    • Each creation operation creates a new item. There's no built-in duplicate detection - manage this in your workflows.
  • Are there limits on search results?

    • Search functions return all matching items. For very large result sets, consider using more specific search strings.
  • Can I attach multiple Physical Products at once?

    • Currently, attach functions attach one Physical Product per call. Multiple attachments require multiple function calls.
  • What authentication methods are supported?

    • The module uses BASIC authentication with username and password. Other authentication methods may be supported in future versions.